home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / phagexsources.lha / source / QuickDial.s < prev    next >
Text File  |  1993-08-20  |  2KB  |  81 lines

  1. ; DTFM Tone Dialler, just dials the phone number in the variable. Works
  2. ; on all BT digital exchanges
  3.  
  4.     Opt    c-
  5.     Section    "ToneDialler",Code_c
  6.  
  7. Start    Movem.l    d0-d7/a0-a6,-(sp)
  8.  
  9.     Move.l    4,a6    ; Disable Tasks and
  10.     Jsr    -$78(a6)    ; Interrupts
  11.  
  12.     Lea    SineToneData(pc),a0
  13.     Move.l    a0,$Dff0b0    ; Set Sample pos to Sine
  14.     Move.w    #8,$Dff0b4    ; Set DMA Length
  15.     Move.w    #0,$Dff0b6    ; Set period...
  16.     Move.l    a0,$Dff0c0    ; Same with other channel
  17.     Move.w    #8,$Dff0c4    ; 
  18.     Move.w    #0,$Dff0c6    ; 
  19.     Move.w    #$0010,$Dff09e    ; No Audio interrupt
  20.     Move.w    #$8206,$Dff096    ; Just enable channels 1&2
  21.     Moveq    #0,d0
  22.  
  23.     Lea    TeleNumber(pc),a5
  24. GetNumber    Move.b    (a5)+,d0    ; Run digits thru ToneDial
  25.     Beq    Quit
  26.     Bsr    DoDialTone
  27.     Btst    #6,$Bfe001
  28.     Beq    Quit
  29.     Bra    GetNumber
  30.  
  31. Quit    Move.w    #6,$Dff096
  32. JustEnable    Move.l    4,a6
  33.     Jsr    -$7e(a6)
  34.     Movem.l    (sp)+,d0-d7/a0-a6
  35.     Clr.l    d0
  36.     Rts    
  37.  
  38. DoDialTone    Move.l    d0,d7    ; Dual Tone Frequency Mod
  39.     Cmp.b    #$30,d7    ; Dialler routine
  40.     Bne    NotASCZero
  41.     Add.b    #11,d7
  42. NotASCZero    Cmp.b    #$30,d0
  43.     Blt    DoPause
  44.     Cmp.b    #$39,d0
  45.     Bgt    DoPause
  46.     Sub.b    #$31,d7
  47.     Move.w    d7,d1
  48.     Divu    #3,d1
  49.     Move.w    d1,d2
  50.     Swap    d1
  51.     Asl.w    #1,d1
  52.     Asl.w    #1,d2
  53.     And.l    #$ff,d1
  54.     And.l    #$ff,d2
  55.     Lea    ToneBank1(pc),a0 ; Get Tone 1 Pitch
  56.     Lea    ToneBank2(pc),a1 ; Get Tone 2 Pitch
  57.     Move.w    0(a0,d1.l),$Dff0b6
  58.     Move.w    0(a1,d2.l),$Dff0c6
  59.     Move.w    #$40,$Dff0b8    ; Set Volumes to 40
  60.     Move.w    #$40,$Dff0c8    ;
  61.     Move.l    #$88b8,d0
  62. TonePauseLoop    Sub.l    #1,d0
  63.     Bne    TonePauseLoop
  64.     Move.w    #0,$Dff0b8    ; Set Volumes to 0
  65.     Move.w    #0,$Dff0c8    ;
  66. DoPause    Move.l    #$2d92,d0    ; Quick Pause in between
  67. PauseLoop    Sub.l    #1,d0    ; Tones
  68.     Bne    PauseLoop
  69.     Rts    
  70.  
  71. TeleNumber    Dc.b    "0803  294775",0
  72.     Even
  73.   
  74. SineToneData    Dc.b    $0,$26,$47,$5c,$64,$5c,$47,$26
  75.     Dc.b    $0,$da,$b9,$a4,$9c,$a4,$b9,$da
  76.  
  77. ToneBank1    Dc.w    $b9,$a7,$97,$89
  78.     
  79. ToneBank2    Dc.w    $140,$122,$106,$ed,0,0,0,0
  80.  
  81.